// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

//
// This file is used by AsmOffsets.h to validate that our
// assembly-code offsets always match their C++ counterparts.
//
// NOTE: the offsets MUST be in hex notation WITHOUT the 0x prefix

PLAT_ASM_SIZEOF(270, ExInfo)
PLAT_ASM_OFFSET(0, ExInfo, m_pPrevExInfo)
PLAT_ASM_OFFSET(8, ExInfo, m_pExContext)
PLAT_ASM_OFFSET(10, ExInfo, m_exception)
PLAT_ASM_OFFSET(18, ExInfo, m_kind)
PLAT_ASM_OFFSET(19, ExInfo, m_passNumber)
PLAT_ASM_OFFSET(1C, ExInfo, m_idxCurClause)
PLAT_ASM_OFFSET(20, ExInfo, m_frameIter)
PLAT_ASM_OFFSET(268, ExInfo, m_notifyDebuggerSP)

PLAT_ASM_OFFSET(0, PInvokeTransitionFrame, m_FramePointer)
PLAT_ASM_OFFSET(8, PInvokeTransitionFrame, m_RIP)
PLAT_ASM_OFFSET(10, PInvokeTransitionFrame, m_pThread)
PLAT_ASM_OFFSET(18, PInvokeTransitionFrame, m_Flags)
PLAT_ASM_OFFSET(20, PInvokeTransitionFrame, m_PreservedRegs)

PLAT_ASM_SIZEOF(248, StackFrameIterator)
PLAT_ASM_OFFSET(10, StackFrameIterator, m_FramePointer)
PLAT_ASM_OFFSET(18, StackFrameIterator, m_ControlPC)
PLAT_ASM_OFFSET(20, StackFrameIterator, m_RegDisplay)
PLAT_ASM_OFFSET(238, StackFrameIterator, m_OriginalControlPC)
PLAT_ASM_OFFSET(240, StackFrameIterator, m_pPreviousTransitionFrame)

PLAT_ASM_SIZEOF(B8, PAL_LIMITED_CONTEXT)

PLAT_ASM_OFFSET(0, PAL_LIMITED_CONTEXT, FP)
PLAT_ASM_OFFSET(8, PAL_LIMITED_CONTEXT, RA)
PLAT_ASM_OFFSET(10, PAL_LIMITED_CONTEXT, R4)
PLAT_ASM_OFFSET(18, PAL_LIMITED_CONTEXT, R5)
PLAT_ASM_OFFSET(20, PAL_LIMITED_CONTEXT, R23)
PLAT_ASM_OFFSET(28, PAL_LIMITED_CONTEXT, R24)
PLAT_ASM_OFFSET(30, PAL_LIMITED_CONTEXT, R25)
PLAT_ASM_OFFSET(38, PAL_LIMITED_CONTEXT, R26)
PLAT_ASM_OFFSET(40, PAL_LIMITED_CONTEXT, R27)
PLAT_ASM_OFFSET(48, PAL_LIMITED_CONTEXT, R28)
PLAT_ASM_OFFSET(50, PAL_LIMITED_CONTEXT, R29)
PLAT_ASM_OFFSET(58, PAL_LIMITED_CONTEXT, R30)
PLAT_ASM_OFFSET(60, PAL_LIMITED_CONTEXT, R31)
PLAT_ASM_OFFSET(68, PAL_LIMITED_CONTEXT, SP)
PLAT_ASM_OFFSET(70, PAL_LIMITED_CONTEXT, IP)

PLAT_ASM_SIZEOF(148, REGDISPLAY)
PLAT_ASM_OFFSET(18, REGDISPLAY, SP)

PLAT_ASM_OFFSET(B8, REGDISPLAY, pR23)
PLAT_ASM_OFFSET(C0, REGDISPLAY, pR24)
PLAT_ASM_OFFSET(C8, REGDISPLAY, pR25)
PLAT_ASM_OFFSET(D0, REGDISPLAY, pR26)
PLAT_ASM_OFFSET(D8, REGDISPLAY, pR27)
PLAT_ASM_OFFSET(E0, REGDISPLAY, pR28)
PLAT_ASM_OFFSET(E8, REGDISPLAY, pR29)
PLAT_ASM_OFFSET(F0, REGDISPLAY, pR30)
PLAT_ASM_OFFSET(F8, REGDISPLAY, pR31)
PLAT_ASM_OFFSET(10, REGDISPLAY, pR2)
PLAT_ASM_OFFSET(B0, REGDISPLAY, pFP)
PLAT_ASM_OFFSET(8, REGDISPLAY, pRA)
PLAT_ASM_OFFSET(108, REGDISPLAY, F)
